﻿namespace EyeOpen.Combinatorics.Mvc
{
	using System.Web.Mvc;
	using System.Web.Routing;
	using EyeOpen.DataAnnotations;

	public class MvcApplication : System.Web.HttpApplication
	{
		public static void RegisterGlobalFilters(GlobalFilterCollection filters)
		{
			filters.Add(new HandleErrorAttribute());
		}

		public static void RegisterRoutes(RouteCollection routes)
		{
			routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

			routes
				.MapRoute(
					"Default", 
					"{controller}/{action}/{id}", 
					new { controller = "Home", action = "Index", id = UrlParameter.Optional });
		}

		protected void Application_Start()
		{
			AreaRegistration.RegisterAllAreas();

			 DataAnnotationsModelValidatorProvider
				 .RegisterAdapter(
					typeof(CsvAttribute),
					typeof(CsvDataAnnotationsModelValidator));

			RegisterGlobalFilters(GlobalFilters.Filters);
			RegisterRoutes(RouteTable.Routes);
		}
	}
}